package com.neusoft.myutils;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public class MyUtils {
	/**
	 * 将resultset查询结果集转换到list+map集合对象
	 * 
	 * @param rs
	 *            被转换的查询结果集
	 * @return list集合对象
	 */
	public static List<Map<String, Object>> converResultSet2List(ResultSet rs) {
		List<Map<String, Object>> lsts = new ArrayList<>();
		try {
			// 重置光标到第一行之前
			rs.beforeFirst();
			// 获取resultsetmapdate-包含查询结果集中的列信息
			ResultSetMetaData rsmd = rs.getMetaData();
			while (rs.next()) {
				// 创建保存一行记录到map对象
				LinkedHashMap<String, Object> mapRow = new LinkedHashMap<>();
				// 遍历当前行的各列的值
				for (int i = 1; i < rsmd.getColumnCount(); i++) {
					// 获取字段名
					String strColumnName = rsmd.getColumnName(i);
					// 获取对应的字段值
					Object objColumnValue = rs.getObject(strColumnName);
					// 将各列的字段名和字段值，键值对存入map对象
					mapRow.put(strColumnName, objColumnValue);
				}
				lsts.add(mapRow);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return lsts;

	}
}
